package Lambda表达式;
/*
* Lambda表达式
* (形式参数)->{ 代码块 }
* 代码块：使我们具体要做的事情，也就是以前我们写的方法体内容
*
* 组成Lambda表达式的三要素
* 形式参数，箭头，代码块
* */
/*
* 操作步骤
定义一个接口(Eatable)，里面定义一个抽象方法：void eat();
定义一个测试类(EatableDemo)，在测试类中提供两个方法
一个方法是：useEatable(Eatable e)
一个方法是主方法，在主方法中调用useEatable方法
* */
/*
* 无参无返回值抽象方法的练习
* */
public class Lambda表达式练习1 {
    public static void main(String[] args) {
        /*方式1*/
        /*在主方法中调用useEatable方法*/
//        EatableImpl e = new EatableImpl();
//        useEatable(e);

        /*方式2*/
        /*匿名内部类*/
//        useEatable(new Eatable() {
//            @Override
//            public void eat() {
//                System.out.println("一天一苹果，医生远离我");
//            }
//        });

        /*方式3：Lambda表达式*/
        useEatable(()->{
            System.out.println("一天一凤梨，医生远离我");
        });
    }
    private static void useEatable(Eatable e){
        e.eat();
    }
}
/*接口*/
interface Eatable{
    void eat();
}
/*实现类*/
class EatableImpl implements Eatable{
    @Override
    public void eat() {
        System.out.println("一天一苹果，医生远离我");
    }
}

















